import { resolve } from 'path';
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import svgLoader from 'vite-svg-loader';

export default defineConfig({
  plugins: [vue(), vueJsx(), svgLoader({ svgoConfig: {} })],
  resolve: {
    alias: [
      {
        find: '@',
        replacement: resolve(__dirname, '../src'),
      },
      {
        find: 'assets',
        replacement: resolve(__dirname, '../src/assets'),
      },
      {
        find: 'vue-i18n',
        replacement: 'vue-i18n/dist/vue-i18n.cjs.js', // Resolve the i18n warning issue
      },
      {
        find: 'vue',
        replacement: 'vue/dist/vue.esm-bundler.js', // compile template
      },
    ],
    extensions: ['.ts', '.js'],
  },
  define: {
    'process.env': {},
  },
  css: {
    preprocessorOptions: {
      less: {
        modifyVars: {
          hack: `true; @import (reference) "${resolve(
            'src/assets/style/breakpoint.less'
          )}";`,
        },
        javascriptEnabled: true,
      },
    },
  },

  // 服务端渲染
  server: {
    // 是否开启 https
    // https: false,
    // 端口号
    port: 3001,
    host: '0.0.0.0',
  },
  build: {
    // publicPath: /vue_admin/', // 部署应用包时的基本 URL
    outDir: 'dist_admin', // 当运行 vue-cli-service build 时生成的生产环境构建文件的目录
    assetsDir: 'assets', // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
  },
  root: process.cwd(),
  base: '/vue_admin/', // 开发或生产环境服务的公共基础路径
  // publicDir: '/vue_admin/', // 用于存放静态资源服务的文件夹，该目录在文件开发期间在根目录处，在构建后，将会复制到outDir的根目录
});
